package sliceformUtils;

import java.util.ArrayList;
import java.util.Iterator;

// un mesh, c'est une liste de triangles
public class Mesh extends Encombrant implements Iterable{
	
	protected ArrayList<Triangle> lesTriangles=new ArrayList<Triangle>();
	
	public boolean add(Triangle t){
		boolean b=lesTriangles.add(t);
		if(t.getMinX()<minX)minX=t.getMinX(); 
		if(t.getMaxX()>maxX)maxX=t.getMaxX(); 
		
		if(t.getMinY()<minY)minY=t.getMinY(); 
		if(t.getMaxY()>maxY)maxY=t.getMaxY(); 
		
		if(t.getMinZ()<minZ)minZ=t.getMinZ(); 
		if(t.getMaxZ()>maxZ)maxZ=t.getMaxZ(); 
		
		xwide=maxX-minX;
		ywide=maxY-minY;
		zwide=maxZ-minZ; 
		
		return b; 
		
	}

	@Override
	public Iterator<Triangle> iterator() {
		return lesTriangles.iterator();
	}
	
	
	public Mesh rotate(CoupleDAngles rot){
		Mesh resu=new Mesh();
		for(Triangle t:lesTriangles){
			resu.add(t.rotate(rot));
		}
		return resu; 
	}

	
	public Mesh rotateInverse(CoupleDAngles rot){
		Mesh resu=new Mesh();
		for(Triangle t:lesTriangles){
			resu.add(t.rotateInverse(rot));
		}
		return resu; 
	}
}
